<?php
/**
 * 
 * Класс для работы с директориями
 * @author Andrew
 *
 */
class Nimblecms_Filesystem_Directory {
	/**
	 * 
	 * Рекурсивно удалаяет директорию
	 * @param string $directory
	 * @param boolean $empty - учитывать пустые
	 */
	public static function rm_recursive($directory, $empty=false) {
		if(substr($directory,-1) == '/')
        {
            $directory = substr($directory,0,-1);
        }
        if(!file_exists($directory) || !is_dir($directory))
        {
            return FALSE;
        }elseif(is_readable($directory))
        {
            $handle = opendir($directory);
            while (FALSE !== ($item = readdir($handle)))
            {
                if($item != '.' && $item != '..')
                {
                    $path = $directory.'/'.$item;
                    if(is_dir($path))
                    {
                        $this->rm_recursive($path);
                    }else{
                        unlink($path);
                    }
                }
            }
            closedir($handle);
            if($empty == FALSE)
            {
                if(!rmdir($directory))
                {
                    return FALSE;
                }
            }
        }
        return TRUE;
	}
}